import Vue from 'vue';
import '@/providers/date.js';
import i18n from '@/i18n';
// 数据保存几位小数
const Fixed = Vue.filter('Fixed', (value, fixedNum) => {
  if (!value) return value;
  let pattern = /^(-?\d+)(\.\d+)?$/;
  if (!pattern.test(value)) {
    throw Error(`${value} is not a number`);
  }
  let _fixedNum = fixedNum ? fixedNum : 4;
  return Number(value).toFixed(_fixedNum);
});
// 订单状态
const orderType = Vue.filter('orderType', (value, item) => {
  let map = new Map();
  // "type": 0,  //用户身份：0买方，1卖方
  // //状态，0：匹配中，1：已完成，2：撤销，3：等待买方付款，4：等待卖方确认，5：未付款回滚订单，6：纠纷强制打款，7：纠纷强制回滚
  let itemPay = item['type'] == '1' ? '等待对方付款' : '等待您的支付';
  let itemcheck = item['type'] == '1' ? '等待您的确认' : '等待卖方确认';
  map.set(0, '匹配中').set(1, '已完成').set(2, '撤销').set(3, itemPay).set(4, itemcheck).set(5, '未付款回滚订单').set(6, '纠纷强制打款').set(7, '纠纷强制回滚').set(8, '纠纷中');
  return map.get(item.state);
});
// 支付方式
const bankType = Vue.filter('bankType', (value, item) => {
  let map = new Map();
  map.set(1, 'BANKS').set(2, 'ALIPAYS').set(3, 'WECHATS');
  return map.get(item.receivablesType);
});
// 时间格式化
const Format = Vue.filter('Format', (value, type) => {
  if (!value) return value;
  return new Date(value).format(type ? type : 'yyyy-MM-dd hh:mm:ss');
});
// 中英文转换
const transform = Vue.filter('t', (value) => {
  if (!value) return value;
  return i18n.t(value);
});
export const Filter = {
  Fixed,
  orderType,
  Format,
  transform,
  bankType
};